Google CloudのAI/ML開発プラットフォームVertex AIは結局何ができるのか
データアナリティクス事業本部 インテグレーション部 機械学習チームの貞松です。
先日のGoogle Cloud Next'23の熱も冷めやらぬ中、Google CloudのAI/MLサービスについてのキャッチアップを進めている今日この頃です。
今回はGoogle Cloud上でのAI/ML開発プラットフォームであるVertex AIについて整理していきます。
クラウドサービス全般的にありがちな話ですが、機能単位でのユーザーガイドやリファレンスを見て、結局のところ何ができるのかわからないケースもあるのではないでしょうか。特にVertex AIは利用可能な機能が多岐に渡っているので、全体像を把握するのが難しい面もあります。
本記事では、AI/ML開発で必要な要素について、Vertex AIでできることを起点として、それに対応する機能を逆引き的に紹介していきます。
Vertex AIでできること
結論として、Vertex AIでできることは以下の通りです。
- 機械学習に関する実験や開発
- マネージドなJupyter Notebookを用いた機械学習の実験や開発
- AutoMLによる各種データソース、機械学習課題に対するモデル学習の実行
- 独自アルゴリズムや任意の環境で実行されるカスタムコンテナを用いたモデル学習の実行
- モデルの学習時に最適なハイパーパラメータの探索
- 再現性の担保やドリフトの検出に役立つ特徴量管理(特徴量ストア)
- 学習済みモデルの登録や履歴管理
- 機械学習の実験管理やメタデータ管理
- 学習済みモデルを用いた推論エンドポイントのデプロイやバッチ推論の実行
- 各種データソースに対するアノテーション作業を含む、学習データセットの作成
- 機械学習パイプラインの実装(Kubeflow Pipelines互換)
- 基盤モデルや生成AI関連
- 基盤モデルをチューニング、カスタマイズして利用可能
- 事前学習済みのモデルを活用したソリューション、アプリケーションの展開
- テキスト、画像、音声に関する生成AIモデルのテストおよびカスタマイズ
- ベクトル検索
- 近似最近傍探索(Nearest Neighbor Search)によるベクトル類似性マッチング
- 例えば以下の用途で利用される
- レコメンデーションエンジン
- 検索エンジン
- 広告ターゲティングシステム
- 画像分類または画像検索
- テキスト分類
- 質問への回答
- チャットボット
- これだけちょっと毛色が違う
以降で上記の各トピックに対して、対応するVertex AIのサービスを逆引き的に紹介していきます。
機械学習に関する実験や開発
マネージドなJupyter Notebookを用いた機械学習の実験や開発
- 該当するサービス
- Workbench
- Colab Enterprise
Workbench
Vertex AIのコンソール画面では以下の階層にあります。
- Notebooks
- Workbench
Workbenchは、Jupyter Notebookベースの開発環境です。WorkbenchインスタンスのJupyter Notebook内からVertex AIや他の Google Cloudサービスと連携することができます。
Colab Enterprise(パブリックプレビュー)
Vertex AIのコンソール画面では以下の階層にあります。
- Notebooks
- Colab Enterprise
Colab Enterpriseは、2023年9月現在パブリックプレビューの機能です。
Colabノートブックの使いやすさと、エンタープライズレベルのセキュリティおよびコンプライアンスサポート機能を組み合わせたマネージドサービスを提供します。
AutoMLによる各種データソース、機械学習課題に対するモデル学習の実行
- 該当するサービス
- AutoML
Vertex AIのコンソール画面では以下の階層から実行していきます。
- Model Development
- Training
- Training Pipelines
- Training
画像、動画、テキスト、表形式データなど、様々な種類のデータソースに対応したノーコードのAutoML機能です。
事前準備として、AutoML用に手持ちのデータからデータセットを作成しておけば、GUI上の操作だけで機械学習モデルの学習を実行することができます。
(データセットの作成には、後述の「Datasets」を使用します)
学習が完了したモデルをそのまま推論エンドポイントにデプロイしたり、バッチ推論処理の実行に利用することもできます。
独自アルゴリズムや任意の環境で実行されるカスタムコンテナを用いたモデル学習の実行
- 該当するサービス
- Custom training
Vertex AIのコンソール画面では以下の階層から実行していきます。
- Model Development
- Training
- Training Pipelines
- Training
Google Cloudで用意されている事前準備済みコンテナやユーザー独自のカスタムコンテナ上で機械学習モデルの学習を実行することができます。
主に独自アルゴリズムによるモデルの学習を想定しており、独自に実装された処理とそれらの処理を実行する為に必要な環境設定が施されたコンテナイメージを利用して、独自の機械学習モデルを作成します。
Custom training実行時に、最適なハイパーパラメータを自動的に探索する為には後述のHyperparameter Training Jobを使用します。
モデルの学習時に最適なハイパーパラメータの探索
- 該当するサービス
- Hyperparameter Training Job
Vertex AIのコンソール画面では以下の階層から確認できます。
- Model Development
- Training
- Hyperparameter Training Job
- Training
実体は、Custom training実行時のオプション機能として利用可能な機能です。
調整したいパラメータの探索範囲(最小値、最大値)やスケールタイプを選択することで、目的とする評価値を最適化するように対象のハイパーパラメータを自動で調整してくれます。
再現性の担保やドリフトの検出に役立つ特徴量管理(特徴量ストア)
- 該当するサービス
- Feature Store
Vertex AIのコンソール画面では以下の階層にあります。
- Data
- Feature Store
モデル学習に使用される特徴量を整理、保存、提供するための一元的なリポジトリです。 Feature Storeを使用することで、特徴量の共有や再利用が容易になる為、以前の実行を再現したり、データのドリフト検出に役立てることができます。
学習済みモデルの登録や履歴管理
- 該当するサービス
- Model Registry
Vertex AIのコンソール画面では以下の階層にあります。
- Deploy And Use
- Model Registry
各種学習済みモデルを登録、管理するための中央リポジトリです。
登録されたモデルのバージョンごとに情報を確認したり、エンドポイントにデプロイすることができます。
Model RegistryはVertex AIのAutoMLモデル、カスタムトレーニングモデルだけでなく、BigQueryMLでトレーニングされたモデルを登録することもできます。
機械学習の実験管理やメタデータ管理
- 該当するサービス
- Experiments
- Metadata
Experiments
Vertex AIのコンソール画面では以下の階層にあります。
- Model Development
- Experiments
Vertex AIにおける各種実行の追跡と分析に有用な機能です。
実験実行のステップ、入力、出力を追跡することができる他、テストデータセットを用いて、トレーニング実行中のモデル性能を評価することもできます。
- 実験実行のステップ
- 前処理
- トレーニング、
- 入力
- アルゴリズム
- パラメータ
- データセット など
- 出力
- モデル
- チェックポイント
- メトリクス など
Metadata
Vertex AIのコンソール画面では以下の階層にあります。
- Model Development
- Metadata
Vertex AI上での実験で使用されるパラメータ、アーティファクト(モデルやデータセット)、メトリクスを追跡するのに役立つメタデータ管理の機能です。
Vertex AI上で定義される「Metadata resource」に対して付与されるメタデータを「Metadata store」に保存、管理します。
主にアーティファクトのリネージに用いることを想定しているようです。
学習済みモデルを用いた推論エンドポイントのデプロイやバッチ推論の実行
- 該当するサービス
- Endpoint
- Batch predictions
Endpoint
Vertex AIのコンソール画面では以下の階層にあります。
- Deploy And Use
- Online prediction
学習済みモデルをデプロイする先のAPIエンドポイントです。
作成されたエンドポイントにアクセスすることで、リアルタイムに推論結果を取得することができます。
スケーラブルな実行環境により、エンドポイントに必要なパフォーマンスやコストに応じて最適な環境で運用することができます。
Batch predictions
Vertex AIのコンソール画面では以下の階層にあります。
- Deploy And Use
- Batch predictions
学習済みモデルを用いて、複数の対象に対する推論を一括で処理して結果を取得する為のバッチ処理機能です。
入出力のリソースとして、Cloud StorageだけでなくBigQueryを指定できる点が特徴です。
各種データソースに対するアノテーション作業を含む、学習データセットの作成
- 該当するサービス
- Datasets
- Labeling tasks (非推奨)
Datasets
Vertex AIのコンソール画面では以下の階層にあります。
- Data
- Datasets
AutoMLでの学習に対応した学習データセットを作成、管理する機能です。
画像、動画、テキスト、表形式データに対する各種タスクに応じたデータセットを作成可能で、単純にデータをインポートして変換するだけでなく、画像に対するアノテーションツールなども含まれています。
ここで作成するデータセット形式は、後述のModel Gardenで利用するケースもあるので、AutoMLを利用しないユーザーに対しても利用機会がある機能となっています。
Labeling tasks (非推奨)
Vertex AIのコンソール画面では以下の階層にあります。
- Data
- Labeling tasks
学習データのラベリング(アノテーション)作業者をアサインする為の機能ですが、2023年9月現在で既に非推奨の機能です。
恐らく利用の機会は無いでしょう。
機械学習パイプラインの実装(Kubeflow Pipelines互換)
- 該当するサービス
- Pipelines
Vertex AIのコンソール画面では以下の階層にあります。
- Tools
- Pipelines
MLOpsを考慮した機械学習パイプライン(データの取り込みから学習済みモデルのデプロイまでに至る一連のワークフロー)を作成するための機能です。
Vertex AI PipelinesのテンプレートはKubeflow Pipelinesテンプレート互換であり、既存でKubeflow Pipelinesのノウハウを持った開発者であれば、比較的容易にパイプラインを構成することができます。
また、テンプレートギャラリーも用意されている為、ギャラリーで準備済みのテンプレートからパイプラインを作成・実行したり、準備済みテンプレートをベースとして、独自のパイプラインを作成することもできます。
基盤モデルや生成AI関連
基盤モデルをチューニング、カスタマイズして利用可能
- 該当するサービス
- Model Garden
- Foundation models
- Fine-tunable models
- Model Garden
Vertex AIのコンソール画面では以下の階層にあります。
- Tools
- Model Garden
既存の学習済み基盤モデルをそのまま呼び出して利用したり、手持ちの独自データによるファインチューニングを実行した上で利用することができます。
随時最新の基盤モデルが追加されていますが、最大の特徴はGoogle謹製のPaLM 2が利用可能な点です。
PaLM 2の概要については以下の通りです。
- Google製のLLM
- Pathways Language Model (PaLM)の発展形
- PathwaysとはGoogleの提唱するAIアーキテクチャ
- 一つのモデルに対して、新しいタスクを効率的に学習し、多少なタスクに適用できるようにする
- https://blog.google/technology/ai/introducing-pathways-next-generation-ai-architecture/
- PathwaysとはGoogleの提唱するAIアーキテクチャ
- 多言語モデル (日本語にも対応)
- Gecko、Otter、Bison、Unicornという4つのサイズがある
- Geckoは非常に軽量でモバイル端末でも動作可能
- BardやDuet AIなど多数のGoogle製品に搭載
- 医療データやセキュリティ関連情報によりトレーニングされたMed-PaLM 2、Sec-PaLMというドメイン特化のモデルも存在する
事前学習済みのモデルを活用したソリューション、アプリケーションの展開
- 該当するサービス
- Model Garden
- Task-specific solutions
- Model Garden
Vertex AIのコンソール画面では以下の階層にあります。
- Tools
- Model Garden
解決したい課題やタスクを起点として、それに対するソリューションやアプリケーションに関しての情報を個別にまとめたものです。
Google Cloud上のAI/ML系SaaSを適用した場合のサンプルの紹介、学習済みモデルを利用したアプリケーションを展開する機能などが備えられています。
テキスト、画像、音声に関する生成AIモデルのテストおよびカスタマイズ
- 該当するサービス
- Generative AI Studio
Vertex AIのコンソール画面では以下の階層にあります。
- Generative AI Studio
- Language
- Vision
- Speech
前述で紹介したPaLM 2を利用した生成AIアプリケーションをプロトタイピングしてテストするためのコンソールツールです。
2023年9月現在では、まだプレビューの機能も多いですが、独自のプロンプト設計やチューニングの機能も備えており、現時点でも比較的実用よりの生成AIツールとなっています。
ベクトル検索
- 該当するサービス
- Vector Search
Vertex AIのコンソール画面では以下の階層にあります。
- Deploy And Use
- Vector Search
以前は「Vertex AI Matching Engine」という名称だったものが「Vector Search」に変更されました(ドキュメントを日本語表示していると「Vertex AI Matching Engine」のままなので、とてもややこしくなっています…)
Vector Searchはその名の通りのベクトル検索機能で、全てのテキスト項目についてベクトル表現を計算(埋め込み表現、Embeddingを生成)し、それらに対して最近傍検索(Nearest Neighbor Search)を実行します。
これによって、構築されたベクトルデータベースを用いてドキュメントの検索や分類、QA・チャットボットの機能を構築することができるようになります。
まとめ
Vertex AIでできることを整理した上で、それらに該当するサービスや機能を逆引き的に紹介しました。
実は最新のVertex AIファミリーとして、生成AIを活用したVertex AI SearchとVertex AI Conversationという2つの機能が一般提供を開始しているのですが、Vertex AIのコンソール画面とは別画面として存在しており、機能としてもそれぞれ独立している為、別枠とさせていただきました。
サービスや機能単体で見ると、解決したい課題や具体的な活用方法と紐付かず、イメージしにくいことが往々にしてあると思うので、本記事を手がかりにVertex AIの活用が進めば幸いです。